package com.sh.parse;

import com.sh.bean.User;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: sh
 * @Version 1.0
 * @Description:
 */
public class JsonParseVersionOne {


    public static List<User> parseJson(String json) {

        List<User> users = new ArrayList<>();
        json = json.trim(); // 去掉首尾空格
        if (json.startsWith("[")) {
            json = json.substring(1);
        }
        if (json.endsWith("]")) {
            json = json.substring(0, json.length() - 1);
        }
        // 在每个 JSON 对象之间用 }, {（中间可能有空格）隔开，然后把这些对象拆分出来
        // 例如  [{"a":1,"b":2}, {"a":3,"b":4}]
        String[] objects = json.split("\\}, \\s*\\{");
        /** 变成
         * [
         *   "\"a\":1,\"b\":2",
         *   "\"a\":3,\"b\":4"
         * ]
         */


        for (String object : objects) {
            object = object.replace("{", "").trim().replace("}", "").trim();
            String[] fields  = object.split(",");
            User user = new User();
            for (String field : fields) {
                String[] kv = field.split(":");
                // 去掉 key 和 value 的双引号
                String key = kv[0].replaceAll("\"", "").trim();
                String value = kv[1].replaceAll("\"", "").trim();
                if ("name".equals(key)) {
                    user.setName(value);
                }else if ("age".equals(key)) {
                    user.setAge(Integer.parseInt(value));
                }
            }
            users.add(user);
        }
        return users;
    }


}

